#include <iostream>
#include <string>

#include <deque>
/*
deque()                           ：默认构造函数，创建空的 deque。
deque(size_type count)            ：创建包含 count 个默认构造元素的 deque。
deque(size_type count, const T &value) ：创建包含 count 个值为 value 的元素。
deque(const deque &other)         ：拷贝构造函数，创建其他 deque 的副本。
deque(deque &&other) noexcept     ：移动构造函数，将另一个 deque 的内容移动到当前 deque。
*/

using namespace std;

struct stu
{
    string name;  // 名字
    string skill; // 技能
    int id;       // 学号
public:
    stu() {}
    stu(string name, string skill, int id) : name(name), skill(skill), id(id) {}

};



int main(int argc, char const *argv[])
{
    
    //创建容器
    deque<stu> stu_v;

    //头插
    stu_v.push_front(stu("唐三","复活吧，我的爱人",1));
    stu_v.push_front(stu("萧炎","佛怒火莲",2));

    for(deque<stu>::iterator it = stu_v.begin(); it != stu_v.end() ; it++)
    {
        stu temp = *it;
        cout << "姓名：" << temp.name << "\t技能：" << temp.skill << "\t学号：" << temp.id << endl; 
    }
    
    cout << endl;
    //头删
    stu_v.pop_front();

    for(deque<stu>::iterator it = stu_v.begin(); it != stu_v.end() ; it++)
    {
        stu temp = *it;
        cout << "姓名：" << temp.name << "\t技能：" << temp.skill << "\t学号：" << temp.id << endl; 
    }
    return 0;
}
